package reflect;

import java.lang.reflect.Method;

public class ReflectDemo7 {
    public static void main(String[] args) throws Exception {
        Person p = new Person();
        //p.hehe();    私有方法不可以在类的外部被调用
        Class cls = Class.forName("reflect.Person");
        Object obj = cls.newInstance();

        //只能获取公开的或者从超类中继承的方法
        // Method  method =cls.getMethod("hehe");
        //   method.invoke(obj);//obj.hehe()
        //getDeclaredMethod()可以获取私有方法
        //暴力反射
        Method method = cls.getDeclaredMethod("hehe");
        method.setAccessible(true);//打开私有方法权限
        method.invoke(obj);
        method.setAccessible(false);

    }
}
